<?php 
/**
 * Subclass for representing a row from the 'dato_personal' table.
 *
 * 
 *
 * @package lib.model
 */
class DatoPersonal extends BaseDatoPersonal
{	
  public $nombreCompleto = '';
  public $perfil = '';
  
	   private $objsUsuariosConUnRolId='';
	   private $objsTurnosDeUnUsuarioId='';
	   private $objDatoPersonalConIdUsuario='';
	   private $datoPersonalConCed='';
	   private $objAteneaUsuarioConCed='';

  function getNombreCompleto()
    {
       return $this->getNombre().' '.$this->getApellido();
    }

  function getPerfil()
    {
  	  if($this->perfil == '')
  	    { 
          $objusuario = $this->getAteneausuario()->getRol();
  	      $this->perfil = $objusuario->getDescripcion();
  	    }
  	  return $this->perfil;
    }  

	function getDatotrabajoDecanato()
	{
		$idusuario = $this->getUsuarioId();

		$c = new Criteria();
		$c->add(DatoTrabajoPeer::USUARIO_ID, $idusuario);
		$obj_datotrabajo = DatoTrabajoPeer::doSelect($c);
		
		foreach ($obj_datotrabajo as $regdatotrabajo)
		{
			if ($regdatotrabajo)
			{
				$decanato = $regdatotrabajo->getDecanatoId();

				$c1 = new Criteria();
				$c1->add(DecanatoPeer::CP_DECANATO, $decanato);
				$obj_decanato = DecanatoPeer::doSelect($c1);
				
				foreach ($obj_decanato as $regdecanato)
				{
					if ($regdecanato)
					{
						return $regdecanato->getNombre();
					}
					else
					{
						return 'NO ENCONTRADO';
					}	
				}
			}
		}
	}

	function getDatotrabajoDepartamento($id = null)
	{
		if ($id == null)
		{
			$idusuario = $this->getUsuarioId();
		}
		else
		{
			$idusuario = $id;
		}

		$c = new Criteria();
		$c->add(DatoTrabajoPeer::USUARIO_ID, $idusuario);
		$obj_datotrabajo = DatoTrabajoPeer::doSelect($c);
		
		foreach ($obj_datotrabajo as $regdatotrabajo)
		{
			if ($regdatotrabajo)
			{
				$departamento = $regdatotrabajo->getDepartamentoId();

				$c1 = new Criteria();
				$c1->add(DepartamentoPeer::ID, $departamento);
				$obj_departamento = DepartamentoPeer::doSelect($c1);
				
				foreach ($obj_departamento as $regdepartamento)
				{
					if ($regdepartamento)
					{
						return $regdepartamento->getNombreDepartamento();
					}
					else
					{
						return 'NO ENCONTRADO';
					}
				}
			}
		}
	}
	
	function getDatotrabajoEspecialidad()
	{
		$idusuario = $this->getUsuarioId();

		$c = new Criteria();
		$c->add(DatoTrabajoPeer::USUARIO_ID, $idusuario);
		$obj_datotrabajo = DatoTrabajoPeer::doSelect($c);
		
		foreach ($obj_datotrabajo as $regdatotrabajo)
		{
			if ($regdatotrabajo)
			{
				return $regdatotrabajo->getEspecialidad();
			}
			else
			{
				return 'NO ENCONTRADO';
			}
		}
	}
	
	function getDatotrabajoProfesion()
	{
		$idusuario = $this->getUsuarioId();

		$c = new Criteria();
		$c->add(DatoTrabajoPeer::USUARIO_ID, $idusuario);
		$obj_datotrabajo = DatoTrabajoPeer::doSelect($c);
		
		foreach ($obj_datotrabajo as $regdatotrabajo)
		{
			if ($regdatotrabajo)
			{
				return $regdatotrabajo->getProfesion();
			}
			else
			{
				return 'NO ENCONTRADO';
			}
		}
	}
	
	public function setDatotrabajoDecanato($v)
	{
		
	}

  function __toString()
    {
       return $this->getNombre().' '.$this->getApellido();
    }

  function getObjDatoPersonalConIdUsuario($idUsu)
	{
		if ($this->objDatoPersonalConIdUsuario=='')
		{
			$c = new Criteria();
			$c->add(DatoPersonalPeer::USUARIO_ID,$idUsu);
			$this->objDatoPersonalConIdUsuario = DatoPersonalPeer::doSelectOne($c);
		}

		return $this->objDatoPersonalConIdUsuario;
	}

	// Funcion que retorna un arreglo de Datos de personal que tiene un determinado Rol
	// Parametro Id del Rol
	// Retorna arreglo de objetos DatoPersonal
	function getObjsUsuariosConUnRolId($idRol)
	{
		if ($this->objsUsuariosConUnRolId=='')
		{
			$c = new Criteria();
			$c->add(AteneausuarioPeer::ROL_ID,$idRol);
			$c->addJoin(AteneausuarioPeer::ID,DatoPersonalPeer::USUARIO_ID);
			$this->objsUsuariosConUnRolId = DatoPersonalPeer::doSelect($c);
		}

		return $this->objsUsuariosConUnRolId;
	}

	// Funcion que retorna un arreglo de Turnos que cumple un determinaro Usuario
	// Parametro Id del Usuario
	// Retorna arreglo de Turno
	function getObjsTurnosDeUnUsuarioId($idUsu)
	{
		if ($this->objsTurnosDeUnUsuarioId=='')
		{
			$c = new Criteria();
			$c->add(HorarioPeer::USUARIO_ID,$idUsu);
			$c->addJoin(TurnoPeer::ID,HorarioPeer::TURNO_ID);
			$this->objsTurnosDeUnUsuarioId= TurnoPeer::doSelect($c);
		}

		return $this->objsTurnosDeUnUsuarioId;
	}

	function getDatoPersonalConCed($ced) /************** Arreglar nombre en asesoria *****************/
     {

        if ($this->datoPersonalConCed=='')
        {
           $c = new Criteria();
           $c->add(DatoPersonalPeer::CEDULAPERSONAL, $ced);
           $this->datoPersonalConCed = DatoPersonalPeer::doSelectOne($c);
        }
      return  $this->datoPersonalConCed;

     }

	function getObjAteneaUsuarioConCed()
     {

        if ($this->objAteneaUsuarioConCed=='')
        {
           $c = new Criteria();
           $c->add(DatoPersonalPeer::CEDULAPERSONAL,$this->getCedulapersonal());
           $c->addJoin(DatoPersonalPeer::USUARIO_ID,AteneausuarioPeer::ID);
           $this->objAteneaUsuarioConCed = AteneausuarioPeer::doSelectOne($c);
        }
      return  $this->objAteneaUsuarioConCed;
     }

    function getDepartamentosOrientacion()
    {
    	$c = new Criteria();
    	$obj_departamentos = DepartamentoOrientacionPeer::doSelect($c);
    	
    	foreach ($obj_departamentos as $regdepartamentos)
    	{
    		$valor = $regdepartamentos->getId();
    		
    		$decanatoid = $regdepartamentos->getDecanatoId();
    		
    		$c1 = new Criteria();
    		$c1->add(DecanatoPeer::CP_DECANATO, $decanatoid);
    		$obj_decanato = DecanatoPeer::doSelect($c1);
    		
    		foreach ($obj_decanato as $regdecanato)
    		{
    			$nombre = $regdecanato->getNombre();
    			
    			$decanatos[$regdepartamentos->getId()] = $regdecanato->getNombre();
    		}
    	}
    	
    	return $decanatos;
    }
     
   function getUsuarioDepartamentoDepartamentoOrientacionId()
   {
   		$usuario = $this->getUsuarioId();

		$c = new Criteria();
		$c->add(UsuarioDepartamentoPeer::USUARIO_ID, $usuario);
		$obj_usuariodepartamento = UsuarioDepartamentoPeer::doSelect($c);
		
		foreach ($obj_usuariodepartamento as $regusuariodepartamento)
		{
			if ($regusuariodepartamento)
			{
				return $regusuariodepartamento->getDepartamentoOrientacionId();
			}
			else
			{
				return 'NO ENCONTRADO';
			}
		}
   }
}